package observer.practice_03;

import java.util.List;
import java.util.Map;

/**
 * 主题
 * <br> 1. 注册
 * <br> 2. 注销
 * <br> 3. 发送广播消息
 *
 * @author yi qiang
 * @date 2021/11/4 1:47
 */
public interface Subject {

    /**
     * 注册到主题中
     *
     * @param observer 观察者
     * @return 注册表
     */
    Map<String, Observer> register(Observer observer);

    /**
     * 解除绑定
     *
     * @param name 观察者名
     * @return 是否解绑成功
     */
    boolean remove(String name);


    /**
     * 发送广播消息
     * @param msg 广播消息
     */
    void broadcast(String msg);


}
